Method and System for Concurrent Web Based Multi-Task Support

ABSTRACT

Supporting of web multitasking via a single web browser is important, especially for small sized communication device where a displayed web browser screen is a precious resource. The supporting of the web multitasking improves efficiency for use of the web browser resources for daily works, for example, while a person accessing a streaming video in a storage space across world wide web, the person also needs to handle an emergent incoming email. The supporting of the web multitasking is also an important step towards creating a web based computer user work environment for any type of operating system.

CROSS-REFERENCES TO RELATED APPLICATION(S)

This application is a continuation application of (a) U.S. patentapplication Ser. No. 13/448,807, which in turn is a continuationapplication of U.S. patent application Ser. No. 12/075,314 filed on Mar.4, 2008, which itself in turn is a continuation application of U.S.patent application Ser. No. 10/713,904 filed on Aug. 6, 2002 and isconverted from provisional application 60/401,238, and now is a U.S.Pat. No. 7,418,702. All above applications are herein incorporated byreference in their entireties for all purpose.

FIELD OF THE INVENTION

The present invention generally relates to support web basedmultitasking for a single computing device or for a plurality ofcomputing devices of a central controlled distributed scalable virtualmachine system (“CCDSVM”) with respect to a web based computer user workenvironment.

BACKGROUND OF THE INVENTION

A typical computer system provides a computer user work environment toend users, wherein the computer user work environment runs on top of ageneric computer operating system. With this work environment, an enduser can login to the system and. setup various computer resource accesscontrols based on his or her permitted role. Therefore, the end user,for example, can configure computer resources such as disks, networks,file folder/directory systems, and others. Also, various computer tasks& operations can be executed by the computer application; and thecomputer operating system of a system provides the results of tasks tothe end user. Specially, with a generic computer operating system, thiscomputer user work environment allows each of a plurality of concurrentusers to run multiple concurrent tasks or operations simultaneously.

The computer user work environment has evolved from paper tape & punchcard environment, command line environment on a native system to window& mouse click environment on a native system in the past. This inventionprovides users a web-based computer user work (operating) environment ontop of generic operating system for a single or multiple computers, andallows each of the users to access one or multiple computing devicesthrough a conventional web-browser.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated into and constitute apart of this specification, illustrate one or more examples ofembodiments and, together with the description of example embodiments,serve to explain the principles and implementations of the embodiments.

In the drawings:

FIG. 1 illustrates an example of a simplified multi-tasks support onWeb-console in a simple environment.

FIG. 2 illustrates an example of a simplified multi-tasks support onWeb-console in a CCDSVM environment.

FIG. 3 illustrates an example of basic data flow between a web-consoleon a console host and the console supporting software in a controlmanagement environment.

FIG. 4 illustrates an example of operation processing flow for a task inthe CCDSVM environment.

FIG. 5 illustrates a user space task list, which represents anabstraction of data structure for controlling multiple simultaneousconcurrent tasks and operations in the CCDSVM environment.

FIG. 6 illustrates one embodiment of a layered CCDSVM structure.

FIG. 7 illustrates an embodiment of typical hardware components for acomputing device.

BRIEF DESCRIPTION OF THIS INVENTION

The traditional web server or other server (3 of FIG. 1) may support auser from a web browser (8 of FIG. 1) on a computing device somewhere onthe network to perform tasks of accessing the server, where the taskcould get quick response and could be finished in a short period oftime, for example, checking a web server's status or getting theserver's other information, et cetera. However, the traditional webserver does not support for multiple simultaneous concurrent tasks oroperations from the same web-browser, such problem will be clearlymanifested to people, especially when these tasks are time consuming tofinish.

For example, creating a 60 GB file system on the server, or configuringa raid controller on that server illustrated in FIG. 1 is such a timeconsuming task. Because these tasks often take a large amount of time tobe finished, and such tasks will experience hanging and blocked in theweb-console (web browser) on a console host such as illustrated inFIG. 1. As a result, no other tasks could be performed in parallel fromthe same web-console at the same time. This caused by the hidden problemof lack of web based multitasking support in the traditional web basedsystem. In addition, traditional console supporting software does notwork for a more complicated environment such as the CCDSVM environmentillustrated in FIG. 2.

To solve these problems and effectively to support multiple simultaneousconcurrent tasks in a web-console for both the simple computingenvironment as illustrated in FIG. 1 and the CCDSVM environment, theconsole supporting software illustrated in FIG. 1 needs to includeadditional control management software modules illustrated in FIG. 2 andothers. As illustrated in FIG. 2, the control management software moduleshall communicate and control all system units and each of the systemunits needs service software modules to communicate with controlmanagement software of console support software.

In addition, a user space task list illustrated in FIG. 5 could be usedtogether with conventional or non-conventional locks to support allmultiple simultaneous concurrent tasks and operations. With thisinvention, the multi-tasks support on the web-console in a simpleenvironment shown in FIG. 1 has been viewed as a special case of suchsupport in a CCDSVM environment shown in FIG. 2. The CCDSVM will bedegenerated into the simple server environment) if there is no multiplesystem units 3 that are illustrated in FIG. 2.

These and other features, aspects and advantages of the presentinvention will become understood with reference to the followingdescription, appended claims and accompanying figures set forth below.

DETAILED DESCRIPTION OF THE INVENTION

The CCDSVM is configured to provide a control management station(“control system”) to control a group of computing systems and providedistributed services to at least one client system across Intranet,Internet as well as a LAN environment. The software components of theCCDSVM form a virtual operating environment.

When a server provides software support for allowing a web-browser on acomputing system (device) such as a desktop, laptop, server, PDA, orcell phone to access and manage the server, this web-browser is oftenreferred as a web-console. With the CCDSVM, a permitted user from theweb-console could be able to access and operate the entire CCDSVM.

To simplify the discussion, the term of thread and process are roughlyused without differentiation between them in this invention regardlessof the very restricted definition of the thread and process in computerscience field. Here both thread and process are basically referred as asequence of instructions based on a piece of program code that starts tobe executed by a computer system step by step to carry out a computertask.

Lock is a mechanism that allows a thread to look a computer resource forits own use and prevents other threads from accessing to the samecomputer resource at the same time. There is conventional lock which canbe acquired and released by the same thread. The conventional lockmechanisms have used by most software developer crossing the softwareindustry. The lock described in this invention may or may not be aconventional one. The non-conventional lock mechanisms created in thisinvention can be acquired by one thread and may be released by samethread or by another thread. Therefore, it is non-conventional lockserving threads on the computing system.

FIG. 1 illustrates an example of a web-console scheme in a simplecomputing environment that includes a console host 1, a server 3, and acommunication network 12. The console host 1 further includes aweb-console 9 (a browser). The server 3 includes a native web-console 9,a web server software 7, and a console support software 6, where theconsole support software 6 further includes web server interface 5 andother service modules 8. It should be noted that the same referenceindicators will be used throughout the drawings and the followingdescription to refer to the same or like items.

The console host 1, from which a user is able to perform system tasks oroperations for the server 3 through the web-console (browser) 9. Theconsole host 1 can be any computing system on the network 12 such as aserver, a desktop PC, a laptop PC, a hand held PDA, or a cell phone. Theweb browser 9 may be commercially available software from any vendor ora proprietary software. The web browser 9 is able to handle web protocolsuch as HTTP. The console host 1 may also include other software modules13 that may be implemented with any suitable programming languages suchas C, C++, Java, XML, et cetera. Other software modules 13 are used tocommunicate between the server 3 and the console host 1 using IP, non-IPor any suitable protocols for receiving and/or sending data between theconsole host 1 and the server 3.

The server 3 could be a web server or any kind of computing system withweb server software that includes web server software 7 and consolesupporting software 6. The console supporting software 6 includes webserver interface 5 and other services software modules 8, where theother services software 8 is operated natively on the server 3. The webserver software 7 may be a commercially available software orproprietary software, which is able to accept and handle the webprotocol such as HTTP. A native web-console (browser) 9 enables a userto access and operate the server computer 3 locally.

Net 12 represents a network infrastructure such as Internet, intranet,and (LAN). The net 12 includes all kind of related network equipment andmedia such as switches/routers, and different kind of connecting cablesand wireless communication media.

FIG. 2 shows an example of a simplified block diagram for an embodimentof the CCDSVM. The CCDSVM system includes console hosts 1, a controlmanagement station 2, system units 3, networks of net1 11 and a net2 12,and client systems 10. The console hosts 1 could be any computing systemon the network such as a server, a desktop PC, a laptop PC, a hand heldPDA, or a cell phone. A web browser 9 on the console host 1 can be usedto access and operate the entire CCDSVM. The web browser 9 may becommercially available software from any vendor or proprietary softwarecompany. The web browser 9 is able to handle web protocol such as HTTP.A difference between a web-console 9 and a web browser is that theweb-console 9 allows a user accessing system information and performingsystem operation over computing system such as in the CCDSVMenvironment.

The console host 1 may also include other software modules 13, which maybe implemented with any suitable programming languages such as C, C++,Java, XML etc. These software modules 13 may be used to facilitatecommunications between the control management station 2 and the consolehosts 1 using IP, non-IP or any suitable protocols for receiving orsending data between the console host 1 and the control managementstation 2. To support a non-web-based networked console, the softwareconfigured for the web console 9 shall be capable of handling protocolsother than web protocols such as deploying HTTP for communicating withthe console supporting software 6 on the control management station 2.

The control management station 2 could be any computing system on thenetwork such as a server, a desktop PC, a laptop PC, or others. Thecontrol management station 2 includes web server software 7 and consolesupporting software 6. The console supporting software 6 includes webserver interface software modules 5 and control management softwaremodules 4. It should be noted that the console supporting software 6 mayincludes others service software modules. It may also have a native webbrowser used as a native web-console 9. The web server software 7discussed earlier could be commercially available software from a majorvendor or other proprietary software that is able to accept and handlethe web protocol such as HTTP. The web server software 7 sends data toand receives data from the web-console 9 of the console hosts 1.

The console supporting software 6 can be implemented with any suitablelanguages such as C, C++, Java, XML, etc. or even implemented by using acombination of different languages as long as it provides the featuresand functionality described in this invention. That means it is languageindependent. In addition, the communication protocol used between theconsole support software 6 and the service software modules 8 of thesystem units 3 could be any suitable protocol such IP based, or non-IPbased or other protocols.

There may be several fixed threads being created based on the controlmanagement software modules 4. There are may be various number ofthreads that are created based on the web server interface softwaremodules 5 for supporting each of tasks submitted by a user via operationmenu displayed in the web-console 9. All of these threads may becommunicated with each other through inter-process communication and aresimply referred as the thread of the console supporting software 6.However, to simplify the discussion, they may be just referred as theconsole supporting software 6 without mentioning the thread at all.

If there is a need to support a less effective non-web-based networkedconsole, there is no need for the web server software 7 and web serverinterfacing software module 5 being employed. Instead, an additionalnetwork software module is required that could be implemented with anysuitable programming language and any suitable communication protocolother than web protocol (HTTP). This network software module cancommunicate with networked console software on the console host 1 acrossa communication network and can communicate with the rest of the consolesupporting software 6 via inter-process communication mechanism.

The system unit 3 could be any computing system on the network such as aserver, a desktop PC, a laptop PC, a hand held PDA, a cell phone, andany operational system. The server could be a video server, a webserver, a storage block data server (SAN unit), a video monitoringdevice, and so forth without limits. The system unit 3 contains servicesoftware modules 8 that are capable of communicating with the outsideworld. For example, the service modules 8 is used to communicate withthe control management software 4 of the control management station 2for carrying out the tasks distributed from the control managementstation 2, or to communicate with the clients 10 of the CCDSVM fordelivering services to them, or to communicate with another system unit3 for transferring the data. The service software modules 8 could beimplemented with any suitable programming languages such as C, C++,Java, or others. It should be noted that the communication protocolcould be any suitable protocol such as IP (Internet Protocol) base orother non-IP based protocol.

The net1 11 represents any kind of communication links between thecontrol management station 2 and the web-console 9 or the client hosts10. The net1 11 could be an infrastructure of internet, intranet, LAN orothers that comprises connection media such as cables of Ethernet,optical Fiber, and/or other, wireless media, bus, and includescommunication equipment such as switches, routers, and/or adapters.

The net2 12 also represents a communication infrastructure comprisingcommunication media and equipment that are similar to the net1 11 has,except for providing communication between the control managementstation 2 and the system units 3 or the web-consoles 9 across theinfrastructure of internet, intranet, LAN, WAN, or other.

The client systems 10 are not part of the CCDSVM but they may requestsservices from the CCDSVM as shown in FIG. 2. The role of the clientsystems and the connections between the client system 10 and system unit3 will not be described in this invention since they are irrelevant tothis invention.

FIG. 3 illustrates a simplified data flow between the web-console 9 onthe console host 1 of FIG. 2 and the console supporting software 6 onthe control management station 2 of FIG. 2. Data travel from theweb-console 9 to the console supporting software 6 includes two steps.First, the data goes from the web-console 9 to the web server software 7of FIG. 2 via the net 11 or 12 of FIG. 2. Second, the console supportingsoftware 6 gets the data from the web server software 7 of FIG. 2 viainter-process communication. To simplify the discussion of thisinvention, this data traveling path will simply refer to as the consolesupporting software 6 getting the data from the web-console 9 or referto as the data being sent from the web-console 9 to the consolesupporting software 6.

Data traveling from the console supporting software 6 to the web-console9 includes two reverse steps. First, the web server software 7 gets thedata from the console supporting software 6 via inter-processcommunication. Second, the web server software 7 sends data to theweb-console 9 via the net 11 or 12. To simplify the rest of discussion,this reverse data traveling will refer to as data being sent from theconsole supporting software 6 to the web-console 9 or refer to as theweb-console 9 gets data from the console supporting software 6. Inaddition, the terms of data, information, and information on a web pagewill be used interchangeably herein.

FIG. 4 shows the basic tasks and operation processing flow chart, whichinitiated from the web-console 9.

FIG. 5 shows one embodiment of a user space task list. Each slot on theuser space task list can be used to one task information relating to atask issued from the web-console 9. The stored task information in theslot will be removed upon the task execution is finished.

FIG. 6 illustrates another embodiment of a layered CCDSVM environment,which provides a flexible scalability mechanism to efficiently supportthousands of heterogeneous system units 3. With this structure, acontrol management station 2 at middle layer 2 becomes a system unit 3and is controlled by a control management station 2 at up layer 1.

FIG. 7 illustrates a embodiment of typical hardware components for acomputing system such as for the control management system 2, systemunits 3, and console hosts 1. The typical hardware consists of one ormore CPU, memory, secondary storage such as disk drives and/or memorysticks, the network interface cards, and display components such asmonitor or others. These components are connected internally throughbuses.

The detailed explanation of FIG. 2 will demonstrate how multipleconcurrent tasks can be initiated from a web-console 9 and can beexecuted either on any one of the system units 3 or on the controlmanagement station 2 according to this invention.

In one example, a user A at a web-console 9 receives an authenticationfrom the console supporting software 6. In one embodiment, asuccessfully login on the control management station 2 is considered anauthentication because it authorizes the user A to access the CCDSVM.Thereafter, the user A can obtain all necessary information about thesystem units 3 and the control management station 2 from the consolesupporting software 6. When the user A initiates a task for a selectedtarget computing system, which is either a system unit 3 or the controlmanagement station 2, the task information is transmitted via the net 11or 12 from the web-console 9 to the console support software 6 on thecontrol management station 2.

A thread is created based on the console support software, 6 where thethread will serve and carry this task in background. The created threadacquires a lock and stores the task information into a valid entry on auser level task list shown in FIG. 5. This is one of efforts to ensurethat the multiple tasks can be initiated simultaneously and concurrentlywithin the same web-console 9 of FIG. 2 without delaying, effecting orblocking each other in the web-console 9 and free from racing eachother.

In addition, multiple web-consoles 9 for multiple concurrent usersanywhere on the net 11 or 12 also can be supported. The obtained locksfor this task will be properly released one at a time along with thetask execution up to a point when the task is finally finished.Therefore, each task could be executed without time delay. Also, thestored task information will be removed upon the execution of the taskis finished.

If total tasks initiated from the web-console 9 have succeeded themaximum tasks allowed by the console supporting software 6, theinitiated task is failed. The locks will be released by thecorresponding thread and the user A on the web-console 9 will benotified correspondingly via net.

If an existing task is in a stage of changing a resource object on atarget system and if a newly created task will make change on the sameresource object on that target system, the newly initiated task may failor may have to wait until the previous task is finished. Further, if atask is failed, the locks associated with the task will be release bythe thread and the user A on the web-console 9 will be notified acrossthe network of 11 or 12 by the console support software 6.

The credential of executing a specific task on a specific targetcomputing system submitted by the user A is checked, where an ordinaryusers' access & operation permissions and credentials are setup byadministrator with supervisor or special privileges. If the user A isnot permitted to perform any task on such target computing system or isnot permitted to perform such task on any one of the computing systemsin the CCDSVM, the task execution will fail and the user A will benotified. Otherwise, the task will be carried out by the correspondingthread on the target computing system that is either a controlmanagement station 2 or a system unit 3.

If there is a need, the console supporting software 6 will send theresults or data back to the web-console 9. When the task is failed norsucceeded, the threads of the console supporting software 6 will releasethe locks acquired for this task.

If the task needs to be executed on the control management station 2,the thread created based on the console supporting software 6 will carryout this task. The threads of the console support software 6 also needto determine if they need to create another thread to execute this task.If there is a need, another thread will be created to execute this task.Once the task is finished, the corresponding locks will be released bythe console supporting software 6.

If a task needs to be executed on a system unit 3, the consolesupporting software 6 will transmit the task information via the net2 12to the service software module 8 of the target system unit 3. The threadbased on the service software module 8 of the target system unit 3 willcarry out this task. The service software module 8 on the target systemunit 3 needs to determine if an additional thread needs to be created inorder to execute such task. If there is a need, an additional thread iscreated to execute this task. Once the task is finished on the targetsystem unit 3, the corresponding status of the task execution istransmitted back to the console supporting software 6 of the controlmanagement station 2. Upon receiving the task finished status, the locksassociated with the thread of the console support software 6 for thattask are released.

The Task Issued from Web-Console

The multiple concurrent tasks issued from a web-console 9 by a usercould be any of the followings:

a) Move or transmit data such as a multiple gigabytes of file or otherdata in any form from any point or any computing system to another pointor another computing system within the CCDSVM.

b) Configure, partition and assign entire storage system (raid/disk)within the CCDSVM.

c) Setup authentication for a specific user from a web-console on aspecific console host with certain privilege for the entire CCDSVM orfor a specific computing system, which could be any one of the systemunits 3 or a control management station 2. Setting up the steps ofauthentication process for any specific services on one or more specificsystem units 3.

d) Monitor and display activities and status for networks, storages,CPUs, processes and threads in the CCDSVM.

e) Create file system, file and directory structures, and support allother related data file operations on either the control managementsystem 2 or the system units 3.

f) And all other types of tasks and operations that might be run inother OS (operating system) environment.

The capability of providing user with the multiple concurrentsimultaneous operations and tasks on the web console 9 has indicatedthat this invention has created a web-based user work environment on topof an existing operating system of a single computing system or multiplecomputing systems. Further, this is a consistent working environment fora computing system since it allows a user to access exact the sameworking environment through the web-console 9, which could be a webbrowser located either on the computing system or located on otherremote systems.

User Login

The user-login mechanism is also supported by the console supportingsoftware 6. The web-console 9 obtains a login web page from the consolesupporting software 6 via the network of 11 & 12. Once the user providesan account name and a password via the login page displayed in theweb-console 9, the authentication information is sent to the consolesupporting software 6 for validation. Upon successful validating theuser account and password information, the console support software 6sends all necessary information such as IP address to the web-console 9,where the information also includes the information of the controlmanagement station 2 and system units 3.

The Maximum Tasks

The maximum multiple concurrent simultaneous tasks that can be initiatedfrom the web-consoles 9 are determined by the console support softwaremodules 6, and they are also determined based on the needs and thecapacity of the control management station 2.

The Credential Checking

The credential of a user includes the permission to access all orpartial computing systems or a single computing system within theCCDSVM. The credential further includes the permission to run all tasksor partial tasks that are listed in the previous section of “The TaskIssued From Web-Console”. It also includes the permission of accessing aspecific size of storage volumes. For example, a user B may be granted apermission to run tasks on computing systems X, Y, and Z. Another user Cmay be granted a permission to run tasks on the entire computing systemsin the CCDSVM environment. The user C might be allowed to get systemstatus on the computing systems X, Y, and Z only while the user B may beallowed to run all tasks on the computing systems X, Y, and Z. Eachcomputing system mentioned here could be a control management station 2or any of system units 3. This basically represents a two-levelauthentication policy and checking. The first level is the securityimposed on the control management station 2 and the second level is thesecurity imposed on the system units (3 of FIG. 2).

The Web-Server Interface Software Modules

The web-server interfacing software module 5 is responsible to getinformation from or send information to the web server software 7. Italso interacts with the control management modules 4 via inter-processcommunication and communicates with service module 8 of the system unit3 via the net2 12.

The Control Management Software Modules

The control management modules 4 on the control management station 2 areresponsible for communicating with the system units 3 for sending datato or receiving data from the system units via the net2 12. It alsoprovides information of the system units 3 to the web interface softwaremodules 5 of the control management station 2 via an inter-processcommunication mechanism.

The Layered CCDSVM Structure

To be more efficiently support multiple concurrent tasks over a largernumber of the system units 3, the CCDSVM can be organized into amulti-layered structure as illustrated in FIG. 6. With this layeredstructure, the CCDSVM can be sub-divided into different groups. Forexample, each one of level-2 control management stations could functionboth as the control management station 2 for controlling the systemunits 3 below it and as a system unit 3 that is controlled by thelevel-1 control management station 2. Therefore, the level-2 controlmanagement station must be configure with related software modules forboth the control management station 2 and the system unit 3.

1-20. (canceled)
 21. A method for supporting access to services, themethod comprising: sending, by a server, information about a firstservice and a second service residing in the server or in at least onecomputing device to an end-user device to be displayed to a user toallow the user to select the first service from the informationdisplayed to submit a first request for access to the first service; andprocessing by the server the first request received from the end-userdevice to carry out the access to the first service, wherein theprocessing of the first request comprises causing the displaying of thefirst and the second services on the end-user device without beingblocked during a regular network traffic to allow the user to select thesecond service from the information displayed to submit a second requestfor access to the second service without waiting for completion of thefirst request for access to the first service.
 22. The method as recitedin claim 21, wherein the processing of the first request comprises:storing information about the first request; processing the firstrequest in the background; and deleting the stored information about thefirst request in response to the completion of the first request;wherein the server facilitates a lock protection mechanism to protectthe processing of the first request.
 23. The method as recited in claim22, wherein the processing of the first request comprises: distributedthe first request to the computing device for further processing whenthe first service residing in the computing device, or processing thefirst request locally on the server when the first service residing inthe server.
 24. The method as recited in claim 21, wherein each of thefirst and second services is an application service comprising videoservice, database service, storage service, web service, securityservice or file service.
 25. The method as recited in claim 23, whereinthe processing of the first request comprises: sending a response,comprising collected status or result of the processing of the firstrequest, to the end-user device.
 26. The method as recited in claim 23,wherein each one of the server or the computing device is operable torespond to the first request including to deliver the first service tothe end-user device.
 27. A web based system supporting access toservices, the web based system comprising: at least one server and onecomputing device interconnected across a communication network; andprogram code that, when executed by a server, causes the server to: sendinformation about a first service and a second service, residing in theserver or in the computing device, to an end-user device to be displayedto a user to allow the user selecting the first service from theinformation displayed to submit a first request for access to the firstservice; and process the first request received from the end-user deviceto carry out the access to the first service, wherein the processing ofthe first request comprises causing the displaying of the first andsecond services on the end-user device without being blocked during aregular network traffic to allow the user selecting the second servicefrom the information displayed to submit a second request for access tothe second service without waiting for completion of the first requestfor access to the first service.
 28. The web system as recited in claim30, wherein said processing of the first request comprises: distributingthe first request to the computing device for further processing whenthe first service residing in the computing device, or processing thefirst request locally when the first service residing in the server. 29.The web system as recited in claim 28, wherein said the processing ofthe first request further comprises: sending a response, comprisingstatus or result of the processing of the first request, to the end-userdevice.
 30. The web system as recited in claim 27, wherein said whereinthe processing of the first request comprises: storing information aboutthe first request; processing the first request in the background; anddeleting the stored information about the first request in response tothe completion of the first request; wherein the server facilitates alock protection mechanism to protect the processing of the firstrequest.
 31. The web based system as recited in claim 27, wherein saidinformation about the first and second files further is displayed in aweb browser screen.
 32. A computer program product, for supportingaccess to services, a non-transitory computer-readable medium comprisingprogram code that, when executed by a server, causes the server to: sendinformation about a first service and a second service, residing in theserver on or in at least one computing device to a first end-user deviceto be displayed to a first user to allow the first user selecting thefirst service from the information displayed to submit a first requestfor access to the first service; and process the first request receivedfrom the first end-user device to carry out the access to the firstservice, wherein the processing of the first request comprises causingthe displaying of the first and second services on the first end-userdevice without being blocked during a regular network traffic to allowthe first user selecting the second service from the informationdisplayed to submit a second request for access to the second servicewithout waiting for completion of the first request for access to thefirst service.
 33. The program product as recited in claim 32, whereinthe program code causes the server to also facilitate a second useraccess to the first and second services via the information about thefirst and second services displayed on a second end-user device.
 34. Theprogram product as recited in claim 32, wherein the program code causingthe server to process the first request comprises: storing informationabout the first request; processing the first request in the background;and deleting the stored information about the first request in responseto the completion of the request; wherein the server facilitates a lockprotection mechanism to protect the processing of the first request. 35.The program product as recited in claim 36, wherein thecomputer-readable medium further comprises program code that, whenexecuted by the computing device, causes the computing device beingoperable to process and respond to the first request received from theserver including to deliver the first service to the first end-userdevice.
 36. The program product of claim 34, wherein the program codealso causes the server to distribute the first request to the computingdevice for further processing when the first service residing in thecomputing device, or processing the first request locally when the firstservice residing in the server.
 37. The program product of claim 36,wherein the program code causing the server to process the first requestfurther comprises: sending a response, comprising status or result ofthe processing of the first request, to the first end-user device. 38.The program product of claim 32, wherein the program code further causesthe server to process the second request in the same way as theprocessing of the first request.
 39. The program product as recited inclaim 32, wherein the program code causes the server to collect theinformation about the first and second services locally or collect fromthe computing device remotely across a network.
 40. The program productas recited in claim 32, wherein each of the first and second services isan application service comprising video service, database service,storage service, web service, security service or file service.